import { createRouter, createWebHistory } from 'vue-router'
import { ElMessage } from 'element-plus'
const routes = [
  { path: '/', redirect: '/index' },// 路由重定向
  {
    path: '/index',
    name: 'index',
    component: () => import('../views/index/index.vue'),
    redirect: '/role',
    children: [
      {
        path: '/role',
        component: () => import('../views/role/index.vue'),
      },
      {
        path: '/user',
        component: () => import('../views/user/index.vue'),
      },
      {
        path: '/menu',
        name: 'menu',
        component: () => import('../views/menu/index.vue'),
      },
      {
        path: '/other',
        name: 'other',
        component: () => import('../views/other/index.vue'),
      },
    ]
  },
  {

    path: '/login',
    name: 'login',
    component: () => import('../views/login/index.vue')
  }
]

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})


// 导航守卫
router.beforeEach((to, from, next) => {
  // 执行路由操作 可以返回的值： false  路由地址
  // 如果用户未登录，localStrage没有token
  // 用户想进入登录页面，直接进
  // 用户想进入其他页面， 不让他进其他页面，同时跳转到登录页面

  // 如果用户登录了，localStrage有token
  // 用户想进其他页面，直接进
  // 用户想进登录页面，不让他进登录页面，同时跳转到首页

  if (!localStorage.getItem('token')) {
    if (to.path == '/login') {
      next()
    } else {
      // 提示： 不能进，得重新登录 同时跳转到登录页面
      ElMessage.error('请重新登录')
      next('/login')
    }
  } else {
    if (to.path == '/login') {
      next('/index')
    }
  }
  next()
})


export default router
